11111

DERS TANITIM BİLGİLERİ


se.cs.ieu.edu.tr

Dersin Adı
Kodu
Yarıyıl
Teori
(saat/hafta)
Uygulama/Lab
(saat/hafta)
Yerel Kredi
AKTS
Güz/Bahar
Ön-Koşul(lar)
Yok
Dersin Dili
Dersin Türü
Seçmeli
Dersin Düzeyi
-
Dersin Veriliş Şekli -
Dersin Öğretim Yöntem ve Teknikleri Problem çözme
Dersin Koordinatörü -
Öğretim Eleman(lar)ı -
Yardımcı(ları) -
Dersin Amacı
Öğrenme Çıktıları Bu dersi başarıyla tamamlayabilen öğrenciler;
  • Bir problemin kendine has özelliklerini nasıl izole edip başa çıkılabilir kılacaklarını öğrenecektir.
  • Algoritmaların zaman ve hafıza karmaşıklıklarını analiz edebilecektir.
  • Algoritma portföylerinde, çok daha farklı problemleri çözmelerini sağlayacak çok daha fazla algoritmik çözüme sahip olacaktır.
  • Doğrudan veya bir dizi transformasyon ile aralık takvimleme, aralık bölümleme, gecikmeyi en aza indirmek için takvimleme, kümeleme ve en düşük maliyetli ağaçlık problemlerinin örnekleri olarak modellenebilen problemleri açgözlü algoritmalarla verimli olarak çözecektir.
  • Bir problemin böl-ve-yönet bir algoritmayla çözülüp çözülemeyeceğini anlayacak ve sırasız çiftleri sayma, verilen noktalar içinde birbirine en yakın olanları bulma ve tamsayıları çarpma problemlerini veya bunlara azaltılabilenleri verimli biçimde çözebilecek ve hızlı Fourier transformasyonunu verimli algoritmalar geliştirmek için kullanacaktır.
  • Ağırlıklı aralık bölümleme ve sekans hizalama problemlerine nasıl dinamik program çözümleri bulabileceğini öğrenecek ve bu bilgiyi genelleyebilerek başka problemeler çözecektir.
  • Harcanan zaman ve çözümün optimalliği arasında değerlendirme yaparak, en optimali bulmak mümkün değilse, yaklaşık algoritmalar kullanma kararı verecek ve kendisine yük dengeleme ve küme kaplama problemlerinin polinom zamanlı olarak azaltılabileceği benzer problemleri ayırdedebilecektir. Öğrenciler yük dengeleme ve küme kaplama problemleri için elde edilen yaklaşıklık limitlerini mümkün olduğunda benzer polinom olmayan problemlerin çözümlerinde kullanılacaktır.
Ders Tanımı

 



Dersin Kategorisi

Temel Ders
Uzmanlık/Alan Dersleri
X
Destek Dersleri
İletişim ve Yönetim Becerileri Dersleri
Aktarılabilir Beceri Dersleri

 

HAFTALIK KONULAR VE İLGİLİ ÖN HAZIRLIK ÇALIŞMALARI

Hafta Konular Ön Hazırlık
1 Tanıtım ve motivasyon. Matematik temeller, toplamalar, özyinelemeler, ve fonksiyonların artışı Cormen Chapter 2, 3, and 4
2 Asimtotik notasyon ve Master teoremi Cormen Chapter 4
3 İkili heapler ve heapsortun analizi Cormen Chapter 6
4 Sıralama teorisi ve diğer karşılaştırma tabanlı sıralama algorithmaları: Merge sort ve quicksortun analizi Cormen Chapter 7
5 Quicksort algorithmasının en kötü çalışma senaryosu analizi Cormen Chapter 7
6 Doğrusal zamanda sıralama, sıralama için altsınırlar, counting sort, radix sort bucket sort Cormen Chapter 8
7 Ortanca ve sıra istatistikleri. Ortanca değer ve sıranın doğrusal zamanda bulunması ve selection algorithması Cormen Chapter 9
8 Arasınav
9 Temel veri yapıları ve ekleme, silme ve güncellemenin çalışma zamanı analizleri Cormen Chapter 10
10 Hash tabloları ve çalışma zamanı analizleri Cormen Chapter 11
11 İkili arama ağaçları ve redblack ağaçları Cormen Chapter 12 and 13
12 Btree ve veri yapılarına ilaveler yapmak Cormen Chapter 18
13 Ortalama çalışma zamanı analizi Cormen Chapter 17
14 Binomial heapler ve fibonazzi heapler Cormen Chapter 19 and 20
15 Genel tekrar
16 Dönemin gözden geçirilmesi  
Ders Kitabı Introduction to Algorithms, 2/eThomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, ISBN: 9780262533058, MIT PressData Structures and Algorithm Analysis in C++, Mark Allen Weiss, Addision Wesley, Third Edition.
Önerilen Okumalar/Materyaller Algorithm Design. Jon Kleinberg and Eva Tardos. 2006, Pearson Education, ISBN 0321372913

 

DEĞERLENDİRME ÖLÇÜTLERİ

Yarıyıl Aktiviteleri Sayı Katkı Payı %
Katılım
Laboratuvar / Uygulama
Arazi Çalışması
Küçük Sınav / Stüdyo Kritiği
Portfolyo
Ödev
Sunum / Jüri Önünde Sunum
Proje
6
30
Seminer/Çalıştay
Sözlü Sınav
Ara Sınav
1
30
Final Sınavı
1
40
Toplam

Yarıyıl İçi Aktivitelerin Başarı Notuna Katkısı
60
Yarıyıl Sonu Aktivitelerin Başarı Notuna Katkısı
40
Toplam

AKTS / İŞ YÜKÜ TABLOSU

Yarıyıl Aktiviteleri Sayı Süre (Saat) İş Yükü
Teorik Ders Saati
(Sınav haftası dahildir: 16 x teorik ders saati)
16
3
48
Laboratuvar / Uygulama Ders Saati
(Sınav haftası dahildir. 16 x uygulama/lab ders saati)
16
Sınıf Dışı Ders Çalışması
15
2
Arazi Çalışması
Küçük Sınav / Stüdyo Kritiği
Portfolyo
Ödev
Sunum / Jüri Önünde Sunum
Proje
6
2
Seminer/Çalıştay
Sözlü Sınav
Ara Sınavlar
1
10
Final Sınavı
1
20
    Toplam
120

 

DERSİN ÖĞRENME ÇIKTILARININ PROGRAM YETERLİLİKLERİ İLE İLİŞKİSİ

#
Program Yeterlilikleri / Çıktıları
* Katkı Düzeyi
1
2
3
4
5
1 Gerçek hayata ilişkin sorunları tanımlayarak, yazılım proje, süreç ve ürününe ait fonksiyonel ve fonksiyonel olmayan özellikleri tanımlayabilmek
2 Yazılım mimarisi, bileşenleri, arayüzleri ve sisteme ait diğer bileşenleri tanımlayabilmek X
3 Kodlama, doğrulama (verification), birim testleri (unit testing) ve hata ayıklama (dubugging) konularını da içerecek şekilde yazılım geliştirebilmek X
4 Programın davranışlarını, yürütüm koşullarını, ve beklenen sonuçlara göre yazılımı sınayarak doğrulayabilmek X
5 Yazılımın çalışması sırasında, çalışma ortamının değişmesi, yeni kullanıcı istekleri ve yazılım hatalarının ortaya çıkması ile meydana gelen bakım faaliyetlerine yönelik işlemleri yapabilmek
6 Yazılımın yaşam sürecinde, yazılımın diğer yazılım sistemleri ile olan entegrasyonunu sağlamak, yazılımda yapılan değişiklikleri yönetmek, yazılımın piyasa sürümlerini ve ara sürümlerini sistematik olarak planlayabilmek, izleyebilmek ve denetleyebilmek
7 Yazılım mühendisliğine yönelik gereksinimlerin anlaşılması, olurluluk çalışmalarına göre hedeflerin saptanması, süreçlerin planlanması, çıktıların belirlenmesi, kaynak planlamalarının yapılması, maliyetlerin saptanması, kaynakların tahsisi, risk yönetimi, kalite planlaması konularında bilgi sahibi olmak
8 Yazılım mühendisliği süreçlerini tanımlayabilme, uygulayabilme, değerlendirebilme, ölçme, yönetme, değiştirme ve geliştirme konularında bilgi sahibi olmak
9 Yazılım gereksinimi, tasarımı, geliştirmesi, sınaması, bakımı, yapılanışı, yönetimi ve kalitesi konularındaki çeşitli araçları ve yöntemleri bilmek, kullanabilme pratiğine sahip olmak X
10 Yazılım yaşam döngüsü süreçlerinde, yazılım kalitesi, kalite modelleri ve karakteristikleri konularını bilmek, temel kalite ölçümlerini yapabilmek ve bunları yazılım geliştirme, doğrulama ve sınama konularıyla birlikte yorumlayabilmek X
11 Başta bilgisayar mühendisliği, yönetim, matematik, proje yönetimi, kalite yönetimi, yazılım ergonomisi ve sistem mühendisliği olmak üzere, yazılım mühendisliği ile ortak sınırlara ve değerlere sahip diğer disiplinler hakkında bilgi sahibi olmak X
12 Genelde mühendislik özelde yazılım mühendisliği kültürü ve etik anlayışını kavrayabilmek, uygulayabilecek temel bilgilere sahip olmak X
13

Yabancı dil kullanarak konusuna ait yayınları takip edebilmek, meslektaşları ile iletişim kurabilmek

X

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest

 

İzmir Ekonomi Üniversitesi | Sakarya Caddesi No:156, 35330 Balçova - İZMİR Tel: +90 232 279 25 25 | webmaster@ieu.edu.tr | YBS 2010